// 真正创建节点，将vnode创建为DOM，但是不插入，返回时作为孤儿节点
export default function createElement(vnode) {
    // 创建DOM节点 该节点暂为孤儿节点
    let domNode = document.createElement(vnode.sel);
    // 有子节点还是有文本 即标签内必须有子标签不可以有子标签和文本同时存在
    if (vnode.text != "" && (vnode.children == undefined || vnode.children.length == 0)) {
        domNode.innerText = vnode.text;
    } else if (Array.isArray(vnode.children) && vnode.children.length > 0) {
        // 内部有子节点 递归创建节点
        for (let i = 0; i < vnode.children.length; i++) {
            let ch = vnode.children[i];
            let chDom = createElement(ch);
            domNode.appendChild(chDom);
        }
    }

    vnode.elm = domNode;

    // 返回elm，elm属性是一个纯DOM对象。
    return vnode.elm;
}